# Maintainer: Chih-Hsuan Yen <yan12125@archlinux.org>

pkgname=python-aiobotocore
_pkgname=aiobotocore
# https://github.com/aio-libs/aiobotocore/releases
pkgver=2.5.0
pkgrel=3
pkgdesc='asyncio support for botocore library using aiohttp'
arch=(any)
url='https://github.com/aio-libs/aiobotocore'
license=(Apache)
depends=(python python-aiohttp python-botocore python-wrapt python-aioitertools)
makedepends=(python-setuptools)
checkdepends=(python-moto python-pytest python-pytest-asyncio
              # moto optdepends
              python-docker python-openapi-spec-validator python-yaml python-flask python-flask-cors)
source=("https://github.com/aio-libs/aiobotocore/archive/$pkgver/$pkgname-$pkgver.tar.gz")
sha256sums=('ef7ec846afe19be0832ed7caefd5ef884e48824bf3cb98cdcb117992561d4429')

prepare() {
  cd $_pkgname-$pkgver

  # Disable dependency pinning
  # Upstream tracking issue: https://github.com/aio-libs/aiobotocore/issues/670
  sed --in-place=.orig -r "s#'(botocore.*),<.*',#'\1',#" setup.py
  diff -u setup.py{.orig,} || true

  # For pytest-asyncio >= 0.19
  # https://github.com/aio-libs/aiobotocore/issues/965
  echo asyncio_mode = auto >> pytest.ini
}

build() {
  cd $_pkgname-$pkgver
  python setup.py build
}

check() {
  cd $_pkgname-$pkgver

  export PYTHONPATH="$PWD"
  # test_lambda uses moto.awslambda, which requires a running Docker service
  # See: https://github.com/spulec/moto/issues/3276
  # test_version checks lower and upper bounds for dependencies in setup.py,
  # and they are patched away in prepare()
  pytest -m moto tests \
      --ignore=tests/test_patches.py \
      --ignore=tests/test_lambda.py \
      --ignore=tests/test_version.py
}

package() {
  cd $_pkgname-$pkgver
  python setup.py install --root="$pkgdir" --optimize=1 --skip-build
}
